package Demo.ClassPath;

import Demo.ClassPath.Impl.CompositeRead;
import Demo.ClassPath.Impl.DirRead;
import Demo.ClassPath.Impl.JarRead;
import Demo.ClassPath.Impl.StarRead;
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;

import java.io.File;
import java.io.IOException;

/**
 * @author smilecode
 * 利用容器模式，读取类的信息
 * 定义一个接口，用于读取class文件
 * 他需要实现：
 *      1. class
 */
public interface Read {
    byte[] readClass(String className) throws IOException;
    static Read create(String file){
        if(file.contains(File.pathSeparator)){
            return new CompositeRead(file);
        }else if(file.endsWith("*")){
            return new StarRead(file);
        }else if(file.endsWith("jar")){
            return new JarRead(file);
        }
        return new DirRead(file);
    }
}
